Python SDK API文档
本文档将详细介绍Python SDK的API,如果您想要了解如何接入,建议您阅读Python SDK 使用指南获得安装并使用SDK的方法
最新版本为:1.1.25
更新时间为:2019-08-21
一、实例化类
Python SDK共提供三种Consumer,分别为写入本地文件的LoggerConsumer,同步阻塞上传数据的BatchConsumer,与异步非阻塞上传数据的AsyncBatchConsumer
1. LoggingConsumer:
将数据使用 logging 库输出到指定路径,并默认按天切割,建议在生产环境中使用。
class LoggingConsumer(log_directory, log_size=1024, bufferSize=8192)
'''
用于实时地向指定路径写本地文件的Consumer,需要搭配传输工具LogBus上传数据
:param log_directory: 写入文件的目录
:param log_size: 单个log文件的大小,单位是MB,默认为1024MB,即1GB
:param bufferSize :立即发送数据的条数,单位是条,默认8192条
'''
2. BatchConsumer:
逐条、同步的发送数据给接收服务器。(不建议在生产环境中使用)
如果发送数据出错,需要开发者自己进行异常处理只建议在上传少量数据或测试数据时使用
class BatchConsumer(server_uri, appid, batch=20, timeout=30000, interval=3)
'''
:param server_uri: 服务器的 URL 地址.
:param appid: appid一个token,在申请项目时会给出.
:param batch: 最大传输数据量,单位是数据的条数,默认为20条数据
:param timeout: 请求的超时时间,单位为毫秒,默认为30秒.
:param interval: 推送数据的最大时间间隔,单位是秒,默认为3秒.
'''
3. AsyncBatchConsumer:
异步、批量发送数据的 Consumer,使用独立的线程进行数据发送(不建议在生产环境中使用)。
如果(重试三次后)发送数据出错或者缓存队列已满,则发送数据会被丢弃。当满足以下两个条件之一时进行数据发送:
- 数据条数大于预定义的最大值
- 数据发送间隔超过预定义的最大时间
只建议在上传少量数据或测试数据时使用
class AsyncBatchConsumer(server_uir, appid, interval=3, flush_size=20, queue_size=100000)
"""
初始化 AsyncBatchConsumer。
:param server_uri: 服务器的 URL 地址.
:param appid: appid一个token,在申请项目时会给出.
:param interval: 两次发送的最大间隔时间,单位秒。
:param flush_size: 队列缓存的阈值,超过此值将立即进行发送。
:param queue_size: 缓存队列的大小,超过queue_size的数据将会丢失。
"""
4. 获取SDK实例
class TGAnalytics(consumer)
'''
获取SDK实例
:param consumer: 使用的Consumer,决定数据格式化和传输的方式.
'''
二、数据操作:
1. 上传事件
track(self,distinct_id = None,account_id = None,event_name = None,properties = None)
'''
上传一个事件
:param distinct_id(str):用户未登录状态下的访客ID
:param account_id(str):账号ID,账号ID与访客ID必须传入一个
:param event_name(str):事件名
:param properties(dict):传入的事件属性
'''
2. 设置公共属性
set_super_properties(properties)
'''
设置每个事件都带有的公共属性,当 track 的属性和公共属性有相同的 key 时,将采用 track 的属性
:param properties(dict):公共属性
'''
3. 清除公共属性
clear_super_properties()
'''
删除所有已设置的公共事件属性
'''
4. 设置用户属性
user_set(distinct_id = None,account_id = None,properties = None)
'''
设置用户属性,如果该用户已经存在该属性,则覆盖,如果不存在则新建该属性
:param distinct_id(str):用户未登录状态下的访客ID
:param account_id(str):账号ID,账号ID与访客ID必须传入一个
:param properties(dict):设置的用户属性
'''
5. 设置单次用户属性
user_setOnce(distinct_id = None,account_id = None,properties = None)
'''
设置用户属性,如果该用户已经存在该属性,不进行覆盖,如果不存在则新建该属性
:param distinct_id(str):用户未登录状态下的访客ID
:param account_id(str):账号ID,账号ID与访客ID必须传入一个
:param properties(dict):设置的用户属性
'''
6. 累加用户属性
user_add(distinct_id = None,account_id = None,properties = None)
'''
累加用户属性,只支持数值型的属性做累加操作
:param distinct_id(str):用户未登录状态下的访客ID
:param account_id(str):账号ID,账号ID与访客ID必须传入一个
:param properties(dict):设置的用户属性
'''
7. 删除用户
user_del(distinct_id = None,account_id = None,properties = None)
'''
删除用户,请注意该操作可能产生不可逆的后果,请慎用
:param distinct_id(str):用户未登录状态下的访客ID
:param account_id(str):账号ID,账号ID与访客ID必须传入一个
:param properties(dict):无意义,可以不设置
'''
8. 立即上传数据
flush()
'''
立即提交数据到相应的接收器
'''
9. 关闭并退出SDK
close()
'''
关闭并退出sdk
'''